package com.yunyao.framework.dto.supplyorder;

import com.yunyao.framework.vo.supplyorder.SupplyMaterialVO;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * 供货订单VO对象
 * @author chenyejian
 * @date 2024-07-16
 */
@Data
public class SupplyOrderSaveDto implements Serializable {
    private static final long serialVersionUID = -8166640423268265364L;

    /**
     * 主键ID
     */
    private String id;

    /**
     * 合同ID
     */
    private String contractId;

    private String contractName;

    private String supplierId;

    private String supplierName;

    private String projectId;

    private String projectName;

    /**
     * 订单号
     */
    private String orderSn;

    /**
     * 订单名称
     */
    private String orderName;

    private String orderProcess;

    private String orderDesc;

    private String attachFiles;

    /**
     * 收货时间
     */
    private String receivingTime;

    private String orderStatus;

    /**
     * 含税价格
     */
    private BigDecimal taxTotalPrice;

    /**
     * 不含税价格
     */
    private BigDecimal notaxTotalPrice;

    /**
     * 供货时间
     */
    private String shipmentAt;

    private String shipmentUserId;

    private String shipmentUserName;

    private String shipmentDesc;

    private String shipmentAttachs;

    private String shipmentFiles;

    /**
     * 确认时间
     */
    private String takeAt;

    private String takeUserId;

    private String takeUserName;

    private String takeDesc;

    private String takeAttachs;

    private String takeFiles;

    /**
     * 创建时间
     */
    private String createdAt;

    /**
     * 创建人
     */
    private String createdBy;

    /**
     * 创建部门
     */
    private String createDept;

    /**
     * 修改时间
     */
    private String updatedAt;

    /**
     * 修改人
     */
    private String updatedBy;

    /**
     * 业务状态 1:正常
     */
    private Integer status;
    private String statusName;

    /**
     * 数据删除状态0:未删除,1:删除
     */
    private Integer isDeleted;

    /**
     * 租户ID
     */
    private String tenantId;

    /**
     * 流程审批状态
     */
    private String auditStatus;
    private String auditStatusName;

    /**
     * 流程实例ID
     */
    private String processInstanceId;

    /**
     * 流程设计模板信息ID
     */
    private String modelSchemeInfoId;

    /**
     * 流程部署ID
     */
    private String deploymentId;

    /**
     * 流程版本
     */
    private String processVersion;

    /**
     * 供货状态0未发起供货 1待供货 2供货完成 3供货延迟 4 验收中 5、验收完成
     */
    private Integer supplyStatus;
    private String supplyStatusName;

    /**
     * 价格类型 0锁定 1浮动
     */
    private String priceType;

    /**
     * 价格备注
     */
    private String priceTypeMark;

    /**
     * 项目对账状态 0 待对账 1 对账中 2对账完成
     */
    private String projectReconciliationStatus;

    /**
     * 供应商对账状态 0 待对账 1 对账中 2对账完成
     */
    private String supplierReconciliationStatus;

    /**
     * 采购合同ID
     */
    private String purchaseContractId;

    /**
     * 采购合同的含税总金额
     */
    private BigDecimal purchaseContractTaxTotalPrice;

    /**
     * 基准价格
     */
    private BigDecimal basePrice;

    /**
     * 涨幅价格
     */
    private BigDecimal increasePrice;

    /**
     * 涨幅比例
     */
    private BigDecimal increaseRate;

    /**
     * 铜价
     */
    private BigDecimal copperPrice;

    /**
     * 铜价日期
     */
    private String copperDate;

    /**
     * 铜价修改人Id
     */
    private String copperUpdatePersonId;

    /**
     * 铜价修改人名称
     */
    private String copperUpdatePersonName;

    /**
     * 铜价系数
     */
    private BigDecimal copperCoefficient;

    /**
     * 合同方式0电线电缆及光纤光缆 1 电梯及扶梯
     */
    private String contractMethod;

    /**
     * 云采项目确认 0=否 1=是
     */
    private Integer projectFolwableStatus;
    private String projectFolwableStatusName;

    /**
     * 采购合同名称
     */
    private String purchaseContractName;

    /**
     * 材料订单总数量
     */
    private BigDecimal orderNum;

    /**
     * 项目发票状态0=未开票 1=已开票
     */
    private String projectInvoiceStatus;

    /**
     * 供货发票状态0=未开票 1=已开票
     */
    private String supplyInvoiceStatus;

    /**
     * 项目确认附件
     */
    private String projectConfirmFile;

    /**
     * 供应商确认附件
     */
    private String supplyConfirmFile;

    /**
     * 项目订单采购单位ID
     */
    private String projectDeptId;

    /**
     * 项目订单采购单位名称
     */
    private String projectDeptName;

    /**
     * 采购订单采购单位ID
     */
    private String purchaseDeptId;

    /**
     * 采购订单采购单位名称
     */
    private String purchaseDeptName;

    /**
     * 合同编号
     */
    private String contractNo;

    /**
     * 对账结算状态0=未结算 1=结算中 2=已结算
     */
    private String settlementStatus;

    /**
     * 流程提交时间
     */
    private String flowSubmitDate;

    /**
     * 供应商确认订单时间
     */
    private String supplyConfirmDate;

    /**
     * 项目订单采购单位ID
     */
    private String saleDeptId;

    /**
     * 项目订单采购单位ID
     */
    private String saleDeptName;

    /**
     * 供货材料id
     */
    private List<SupplyMaterialVO> materialIdList;

}
